var QuQu = {};

QuQu.token="";

QuQu.post=function(param,async,callback){
    $.ajax({
        url:param.url,
        headers: {
            "appcode":param.appcode,
            "timestamp":new Date().getTime(),
            "requesttype":param.requesttype?param.requesttype:'1',//"requesttype","1"
            "terminaltype":1,//Web
            "terminalno":param.terminalno?param.terminalno:'1',//终端编号 蛐蛐应用服务器集群节点的编号 可自定义
            "operationid":'-1',
            "operationname":encodeURIComponent('开发测试')
        },
        async:async,
        type:'post',
        data:param.postdata,
        dataType:"json",
        success: function(data) {
            callback(data);
        }

    })
};



/**从form获取数据，转为json对象
 * form   表单名字
**/
QuQu.formToJson=function (form) {
var result = {};
var fieldArray = $('#' + form).serializeArray();
for (var i = 0; i < fieldArray.length; i++) {
    var field = fieldArray[i];
    if (field.name in result) {
        result[field.name] += ',' + field.value;
    } else {
        result[field.name] = field.value;
    }
}
return result;
};



/**获取令牌
 * 
 */
QuQu.getToken=function (accountid,appcode,appkey){
	var returndata;//返回数据
	var jsondata = {};
	jsondata.timestamp=new Date().getTime()+"";
	var sign = CryptoJS.MD5(jsondata+appkey).toString();//签名
	var postdata = {}; 
	postdata.accountid=accountid;
	postdata.encryptiontype="3";//加密类型
	postdata.sign=sign;
	postdata.data=JSON.stringify(jsondata) ;
	 this.post({
			url:contextpath+"/p0112",
			appcode:appcode,
			postdata:postdata
		},false,function(data){
		returndata= data;
	});
	return returndata;
};

/**实际加密后的post请求
 * appcode  应用编号
 * appkey	应用密钥
 * accountid  账户编号
 * jsondata		json格式的表单数据
 * actionname	action名称
**/
QuQu.realPost=function (appcode,appkey, accountid,jsondata,actionname){
	var	returndata;//返回数据
	var jsonstr=JSON.stringify(jsondata) ;
	var encryptiontype="1";//加密类型
	var token="";//商户令牌
	var postdata = {
		accountid:accountid,
		encryptiontype:encryptiontype,
	};
	//获取token。。。。token获取失败提示出错。。。
	var tokenResult=this.getToken(accountid,appcode,appkey);
	if(tokenResult.status=="1"){//获取令牌成功
		var rdata=JSON.parse(tokenResult.data).result;
		var rtoken=JSON.parse(rdata).token;
		token=rtoken.substring(8,24);
		QuQu.token=token;//token赋值
	}else{
		//获取失败弹出提示框
		 var dialog = new Dialog();
		 dialog.Fail('获取商户令牌失败！');
	//	$('<div title="错误">获取商户令牌失败！<div/>').dialog();
		return;
	}
	var decdata= aesEncrypt(jsonstr,token);//加密
	var sign = CryptoJS.MD5(jsonstr+appkey).toString();
	postdata.sign=sign;
	postdata.data=decdata;
	 this.post({
			url:contextpath+"/"+actionname,
			appcode:appcode,
			postdata:postdata
		},false,function(data){
		returndata= data;
	});
	return returndata;
};


